专利摘要:
computer-implemented system and method for profiling computing resource utilization operation profiles for consumers of computing resources may be automatically determined based on analysis of actual resource utilization measurements and other operational metrics. measurements can be taken while a consumer, such as a virtual machine instance, uses computing resources, such as those provided by a host. a profile can be dynamically determined based on these measurements. profiles can be generalized in such a way that groups of consumers with similar usage profiles are associated with a single profile. Assignment decisions can be made based on the profiles, and computing resources can be reallocated or over-subscribed if the profile indicates that consumers are likely to fully use the resources reserved for them. Oversubscribed resources can be monitored, and consumers can be transferred to different resource providers if contention for the resources is too high.
公开号:BR112015005588B1
申请号:R112015005588-5
申请日:2013-09-17
公开日:2022-01-18
发明作者:Michael David Marr;Matthew D. Klein
申请人:Amazon Technologies , Inc;
IPC主号:
专利说明:

FUNDAMENTALS
[0001] Generally described, computing devices use a communication network, or a series of communication networks, to exchange data. Businesses and organizations operate computer networks that interconnect a range of computing devices to support operations or provide services to third parties. Computing systems can be located in a single geographic location or located in several different geographic locations (eg, interconnected through public or private communication networks). Specifically, data centers or data processing centers, commonly referred to herein as "data centers," may include a series of interconnected computing systems to provide computing resources to data center users. Data centers can be private data centers operated on behalf of an organization or public data centers managed on behalf of, or for the benefit of, the general public.
[0002] To facilitate increased utilization of data center resources, virtualization technologies can allow a single physical host computing device to host one or more instance configurations of virtual machine instances that appear and operate computing devices as independents. for users of a data center. With virtualization, the single physical host computing device can dynamically create, maintain, delete or otherwise manage virtual machine instances. In turn, users can request single computing devices or a configuration of networked computing devices, and be equipped with varying numbers of virtual machine resources.
[0003] The computing resources provided by the host computing devices may include computing capacity, memory and other storage, bandwidth, and the like. In a data center environment with thousands of host computing devices, an instance of a virtual machine can be instantiated on a random host computing device as long as the host computing device meets criteria such as sufficient and available device computing resources ( e.g. processing units, memory, and the like). Once an instance of a virtual machine is instantiated on a physical host computing device, a predetermined amount of one or more computing resources can be reserved for use by, for example, the virtual machine. A provider of compute resources or other operator of the data center environment can ensure that the reserved values of compute resources on the target compute device are available for the virtual machine instance. BRIEF DESCRIPTION OF THE DRAWINGS
[0004] Throughout the drawings, reference numbers may be reused to indicate correspondence between referenced elements. The drawings are provided to illustrate exemplary embodiments described herein and are not intended to limit the scope of the disclosure.
[0005] FIG. 1 is a block diagram of an illustrative network computing environment including a management component, multiple host computing devices, and multiple clients.
[0006] FIG. 2 is a block diagram of an illustrative management component including various component and storage modules.
[0007] FIG. 3 is a flow diagram of an illustrative process for automatically profiling computing resource utilization.
[0008] FIG. 4 is a block diagram of an illustrative host computing device hosting virtual machines that utilize computing resources made available by the computing device.
[0009] FIG. 5 is a flow diagram of an illustrative process for launching virtual machines on host computing devices, allocating computing resources and oversubscribing, and migrating currently running virtual machines in order to further optimize utilization of computing resources.
[0010] FIG. 6 is a block diagram of an illustrative host computing device in which various computing resources are over-subscribed and excess capacity remains available.
[0011] FIG. 7 is a block diagram of an illustrative host computing device in which the various computing resources are substantially over-subscribed due to minimal resource utilization of each virtual machine running on the host computing device.
[0012] FIG. 8 is a block diagram of an illustrative migration of a virtual machine from one host computing device to another host computing device due to oversubscriptions and a lack of available computing resource capacity. DETAILED DESCRIPTION
[0013] Generally described, the present invention relates to the use of computing resources. Specifically, disclosure pertains to automatically determining resource utilization and operation metrics profiles for consumers of computing resources based on an analysis of actual resource utilization measurements and other operational metrics. In some embodiments, a consumer of compute resources, such as a virtual machine instance instantiated according to customer specifications (for example, a virtual machine instance instantiated a virtual machine image configured with an operating system and software applications per customer specification), can be instantiated on a physical host computing device. The virtual machine instance can consume various compute resources based on the execution of computer software programs or one or more workloads by the virtual machine instance. The virtual machine instance may then finish running or not be configured for a different purpose.
[0014] For specific entities, such as a client or group of clients, the process of instantiating virtual machine instances can be repeated. As part of virtual machine instance lifecycle processing, a service provider associated with provisioning the virtual machine instances can observe and record resource consumption. The service provider can then determine the virtual machine instance resource utilization and metric profile in operation based on measurements of processing resource consumption and other operational metric information.
[0015] Other aspects of disclosure refer to the generalization of resource usage and metric profiles in operation, generally referred to as operational profiles. For example, thousands or more of the virtual machine instances can be instantiated and can utilize resources in a single network computing environment such as a data center. Rather than determining and maintaining separate custom operating profiles for each virtual machine instance, virtual machine instances can be assigned generalized or standard operating profiles. In this way, groups of virtual machine instances can be classified according to a variety of organization criteria and assigned the same operating profile. In some cases, the operation profiles can be hierarchical, such that a particular virtual machine configuration example is associated with a particular operation profile, and also with a more general operation profile that is associated with the configuration settings. multiple virtual machine instance. There can be multiple levels in the hierarchy, with potentially thousands of virtual machine instance configurations associated with a single general operational profile or a small number of higher level profile operations, and a greater number of more specific profile operations at each level within of the hierarchy. At the bottom level of the hierarchy may be a particular operation profile associated with a single virtual machine instance configuration as used by a particular client.
[0016] Other aspects of the disclosure pertain to the identification of a target host computing device to provide computing resources to virtual machine instances based on an automatically determined operation profile. In some embodiments, physical host computing devices can be configured to provide target computing resources to multiple instances of virtual machines simultaneously. A predetermined amount of a compute resource can be reserved for use by a single virtual machine instance. When the operation profile for a virtual machine instance indicates that the virtual machine instance is not likely to consume compute device resources that have been reserved for the instance, the host compute device can instantiate additional virtual machine instances. Additional virtual machine instances can be associated with, or have access to, host computing device resources concurrently with previously instantiated virtual machine instances. In addition, if any of the virtual machine instances or otherwise restrict consumption to access a resource such that consumption meets or exceeds one or more thresholds specified in an operation profile for the virtual machine instance, a or more of the virtual machine instances can be transferred to another host computing device. For example, the virtual machine instance associated with consumption that exceeds a threshold can be transferred, or other virtual machine instances can be transferred.
[0017] Some computing resources are not necessarily provided by the host computing devices, but rather are off-host resources. For example, the network topology may require communications from one host computing device to a second host computing device to traverse one or more links (eg, network connections between switches and other network components). The number of connections may be different for communications with a third host computing device. Data referring to the traffic link and the number of links that communications will travel between hosts can be counted as a measure of resource consumption or metric in operation. The data can be used in the future to determine on which host computing device to instantiate a virtual machine instance that can communicate with another host computing device. Also, the consumption of some compute resources does not necessarily reduce the amount of the resource that is available to other virtual machine instances or consumers in general. For example, a characteristic that is provided by a host computing device, such as a particular instruction set, can generally be referred to as a computing resource. Usage of the instruction set, however, does not necessarily reduce the availability of the instruction set to another virtual machine instance, application, or other consumer.
[0018] While aspects of the modalities described in the description will focus, for the purpose of illustration, on relationships and interactions between a management component, server computing devices, and virtual machines instantiated on server computing devices on behalf of customers, one skilled in the art will appreciate that the techniques described herein can be applied to any number of hardware or software processes or applications. For example, while virtual machine instances will generally be used as the illustrative consumer of computing resources, other programs or workloads may replace application software, operating systems, storage area network (SAN) nodes, and the like. Furthermore, while computing resources such as memory, CPU capacity, and network bandwidth will be used as the illustrative computing resources, other computing resources may be substituted, such as network link traffic, latency, processor instruction sets, and the like. Furthermore, while the various aspects of the present description will be described with respect to illustrative examples and embodiments, one skilled in the art will appreciate that the described embodiments and examples are not to be construed as limiting. Various aspects of the description will now be described in relation to certain embodiments and examples, which are intended to illustrate, but not limit, the disclosure.
[0019] FIG. 1 illustrates an example network computing environment 100 where automated profiling of resource utilization and resource allocation based on these profiles can be applied. Operational profiling and resource allocation may be based on past measurements of actual resource utilization and other operational metrics, as well as on expected future resource utilization. A network computing environment 100 may include a management component 102 and any number of physical host computing devices 104a - 104n communicating over a network 110. One or more clients 122 may communicate with components of the network's computing environment. network 100 through a network 120.
[0020] Network computing environments 100, as illustrated in FIG. 1 can be implemented in data centers and other environments in which the various computing devices provide internal or external clients 122. As described in more detail below, each client 122 can connect to the management component 102 or some other component within from the network computing environment 100 to start computing processes. The initiation of computing processes may include instantiating a virtual machine instance on a host computing device 104 or configuring an operating environment and one or more software applications. The virtual machine instance may run, on behalf of the user, consume computing resources from the host computing device 104, the network 110, and the like. While the present description will focus, for purposes of illustration only, on the operation of a network computing environment 100 that provides computing services to external or internal clients 122 through the use of virtual machines, the systems and processes described herein may apply to any application of a 100 network computing environment, including one without any separate client entity 122 or without the use of the virtual machine.
[0021] Each computing host device 104 may be a server computer, such as a blade server. Optionally, host computing device 104 can be a midrange computing device, mainframe, desktop computer, or any other computing device configured to provide computing resources and services to multiple consumers, such as virtual machine instances. , simultaneously. In a typical implementation, a host computing device 104 may be configured to communicate with the management component 102, or some other component of the network computing environment 100 over a network 110.
[0022] Network 110 may be a local area network (LAN), a wide area network (WAN), another network, or a combination thereof. In addition, computing environment network 100 may connect to another network 120, such as a corporate or university network, or a collection of networks operated by independent entities, such as the Internet. Clients 122 of network computing environment 100 may communicate with host computing devices 104 through the combination of networks 120, 110. In some embodiments, clients 122 may cause computing device 102 to launch a virtual machine instance to run various computing operations for or on behalf of the customer 122. Any number of instances of virtual machines may be running on a single host computing device 104 at any given time. Furthermore, the multiple instances of virtual machines running on a host computing device 104 can be associated with a single client 122 or with a number of different clients 122.
[0023] The management component 102 can be implemented as hardware or as a combination of hardware and software. For example, the management component 102 may be a computing system of one or more computing devices configured to run one or more software programs to perform the functions described herein. In some embodiments, the management component may include one or more of the host computing devices 104a -104n.
[0024] FIG. 2 illustrates a sample management component 102 in greater detail. The management component 102 may include a profiling module 202, a positioning module 204, a migration module 206, a running metric data store 208, and a profile data store 210. In some embodiments, management component 102 may include more or fewer modules and data stores than illustrated in FIG. 2. For example, there may be no separate migration module 206 when the migration feature is not implemented, or implemented by the placement module 204. In other exemplary embodiments, there may be additional data stores for generalized customer profiles.
[0025] In operation, the profiling module 202 can obtain operational data on operational metrics and resource utilization by instances of a specific virtual machine instance configuration at a given time, from all virtual machine instances associated with a particular customer 122, etc. The determination module profile 202 can analyze operational data and develop an operation profile of the computing resources used by the virtual machine instance or group of virtual machine instances being profiled. For example, operating data may include historical measurements regarding the amount of memory used, the utilization of the central processing unit (CPU), the amount of network traffic received or transmitted, the amount of hard disk space used, the number of disk operations, the amount of electricity used (e.g., the amount used by the host computing device 104 that can be attributable to the virtual machine instance), the amount of network connection traffic initiated, and the like. Profiling module 202 can then determine an average for each of the measurements associated with instances of a specific virtual machine instance configuration or group of virtual machine instance configurations, and store the averages in the operating profile. . The operating profile need not be limited to average values. For example, the trading profile may include other statistical analyses, such as the mean, standard deviation, usage histogram, or any other necessary or useful data. In some modalities, the operation profile can also be characterized according to the temporal characteristics of use, such as the time of day, day of the year, etc.
[0026] The operation profile can also be characterized according to expected measurements and operational metrics. For example, a variation of an expected performance parameter, often referred to as instability, can be observed and included in the operating profile. Such data can be used to determine whether project objectives, service level agreements and other customer promises or obligations are being met or to determine how often they are not met. The positioning module 204 can be responsible for instability in making future positioning decisions, seeking to ensure that the same operational metric will not fall outside the expected range or not guarantee that consumers' obligations are satisfied. In some embodiments, the operation profile may contain other data, such as latency preferences or requirements, instruction set preferences or requirements, and the like. Such data may be provided by consumers or determined through analysis of virtual machine instance operation by the profiling module 202.
[0027] Illustratively, a service provider can provide three classes of virtual machines: small, medium and large. Each class can be associated with a predetermined amount of each of the compute resources that will be reserved for use by virtual machine instances (e.g. small VMs can have 2 GB RAM, medium VMs can have 8 GB RAM, large VMs may have 32GB RAM). Customers can instantiate instances of a virtual machine configured with an operating system and application software, such as a large virtual machine configured with web server software. Measurements can be recorded against the usage of compute resources by a large virtual machine instance configured with web server software. Profiling module 202 can then calculate predicted resource usage amounts for future instances of the virtual machine instance configuration when, for example, used as a web server. Expected resource usage amounts can form the basis of the operation profile determined by the profiling module 202. The profiling module 202 can then modify the operation profile as a set of data, including measurements of Real resource utilization that is built up over time.
[0028] The profiling data that is used by the profiling module 202 can be obtained from a variety of sources. As described above, data can be obtained from an entity associated with the virtual machine. Data can also be obtained directly from a workload analysis component of the host computing device 104 on which the virtual machine instance is running. In some embodiments, the data may be obtained from an operational metric data store 208. The operational metric data store 208 may be integrated with the management component 102, as illustrated in FIG. 2, or it can be physically located on a separate computing device, such as a dedicated relational database management system (RDBMS) server. The health profiles that are determined by the profiling module 202 can be stored in a profile data file 210. Similar to the operational metric data store 208, the data store profile 210 can be integrated with the data store component 210. administration 102 or located on the separate computing device such as a dedicated RDBMS server.
[0029] In some 100 network computing environments, there may be thousands or more of the virtual machine instances to profile, and each operation profile may, for example, be based on the analysis of unique usage data for certain instance configurations virtual machine or the use of a particular client. In order to efficiently use health profiles to make placement decisions regarding the instantiation of virtual machine instances on host computing devices 104a - 104n, health profiles can be generalized. Thus, a number of different virtual machine instance configurations may be associated with the same, or substantially similar, profiles in operation, although there may be variations in the actual resource utilization associated with each virtual machine instance configuration. For example, the profiling module 202 can associate a virtual machine instance configuration with previously defined expected usage amounts, rather than storing a custom operation profile for each virtual machine instance configuration. The predefined operation profile can include usage intervals for each of the compute resources that is metered. Furthermore, health profiles can be hierarchical, such that a particular virtual machine instance configuration is associated with a particular operating profile, and also with a more general operating profile that is itself associated with various configurations. of virtual machine instance.
[0030] In some modalities, the operation profiles can still be generalized into categories. For example, a number of virtual machine instance configurations, each associated with a different amount of network utilization, can be classified as "light network applications" or "network applications heavy", depending on whether the utilization metering is above or below a threshold. In such a categorization scheme, the virtual machine instance configuration that, when instantiated, primarily performs local compute operations and rarely uses a network connection, can be categorized in the same category of "lightweight networking applications" as a machine instance configuration. virtual machine that often uses a network connection, but only for small transmissions that may be trivial compared to the amount of bandwidth available to the host computing devices 104a - 104n on which the virtual machine instance runs. Such generalized operating profiles may also be based on a combination of two or more categories, such as "Light Network Application/CPU Heavy Application" and "Light Network Application/Light CPU Application." Going back to the previous example, the two virtual machine instance configurations can be associated with different categories. The virtual machine instance configuration which, when instantiated, primarily performs local compute operations and rarely uses a network connection that could be classified as a "Light Network Application/CPU Heavy Application", while the Machine Instance Configuration virtual machine which, when instantiated, will often initiate small network transmissions that can be classified as a "light network application/light CPU application" if the CPU utilization of the virtual machine instances drops below a threshold.
[0031] As described above, health profiles, either specific to a virtual machine instance configuration or generalized to a number of virtual machine instance configurations can be used to identify a host computing device 104a - 104n on which to place virtual machine instances. Positioning module 204 may be invoked when a client 122 initiates a computing session or when a virtual machine is otherwise instantiated. The positioning module 204 can determine which operation profile is associated with the virtual machine instance at the current time. For example, the operation profile can be a custom profile, including measurements of actual resource utilization associated with the virtual machine instance, at the current time of day, during the current month of the year, etc. In some cases, measurements may be specific to a particular customer, so that an operation profile for a particular customer can be created and accessed. The customer's specific operation profile may apply to a specific virtual machine instance configuration or may generally apply to several different virtual machine instance configurations. Optionally, the operation profile can be a generalized profile based on the general character of resource usage associated with the virtual machine instance, which can also be based on the actual time of day, etc. The virtual machine placement module 204 may then select a host computing device 104 on which to launch the virtual machine instance based on the resource availability of the host computing devices 104a - 104n and the expected resource utilization of the host instance. virtual machine determined from the operation profile.
[0032] Resource utilization can be dynamic over the lifetime of a single instance of a specific virtual machine instance configuration, and across multiple instances of a specific virtual machine instance configuration. The migration module 206 of the management component 102 can monitor the resource utilization of each virtual machine instance and run the host computing device 104 on which the virtual machine instance is running. When resource utilization changes, the migration module 206, similar to the virtual machine placement module 204 described above, can select an appropriate host computing device 104 on which to place the virtual machine instance. A new virtual machine instance can be launched on the selected host computing device 104, and the running state of the virtual machine instance (memory, inputs, etc.) can be copied to the new virtual machine instance. When the new virtual machine instance is ready to start running, the previous virtual machine instance can be shut down without losing data and without a substantial loss of performance. The new virtual machine instance can run more efficiently due to available resources.
[0033] In some embodiments, instead of instantiating a new instance of the virtual machine on a different host computing device and terminating the previous instance, resources can be reallocated. When resource utilization or performance metrics change, additional resources (eg memory) can be allocated to the particular virtual machine. For example, a resource may be reallocated from other virtual machines that are not expected to fully utilize the resource.
[0034] Turning now to FIG. 3, an illustrative process 300 for determining an operating profile for a virtual machine instance configuration will be described. Process 300 may be performed by a management component 102. Management component 102 may receive a request from a client 122 or otherwise be notified to instantiate a virtual machine. After instantiating the virtual machine instance, identifying an instantiated virtual machine instance or causing the virtual machine to be instantiated, the management component 102 can monitor or otherwise receive operational data about the usage of compute resources associated with the instance of virtual machine. Based on resource usage and metric data in operation, the management component 102 may determine or update an operation profile for the virtual machine instance configuration, or update an existing operation profile. Advantageously, the operation profile can be compared with other health profiles and generalized and the configuration of the virtual machine instance can be associated with a resource utilization category.
[0035] Process 300 starts at block 302. Process 300 may start automatically, such as in response to receiving a request to instantiate an instance of a virtual machine. For example, process 300 may be performed on a set of executable program instructions and stored on a unit of computer-readable media of the computing system with which the management component 102 is associated. When process 300 is started, executable program instructions can be loaded into memory, such as RAM, and executed by one or more processors of the computing system. In some embodiments, the computing system may include multiple computing devices, such as servers, and the process 300 may be run by multiple servers, either in series or in parallel.
[0036] At block 304, the management component of 102 or some other component launches a virtual machine instance. As described in detail below with respect to FIG. 5, the management component may select a host computing device 104 on which to launch the virtual machine instance based on the resources that are expected to be consumed by the virtual machine instance and the resources that the host computing devices 104a - 104n are currently available. The resources expected to be consumed by the virtual machine instance or to be made available to the virtual machine instance can be determined from a pre-existing operation profile, from information received from the customer 122 or another entity requesting that the instance of the virtual machine will be launched, etc.
[0037] Process 300 may pass to block 306 for the newly launched virtual machine instance in order to obtain operational metrics and to create or modify an operation profile. As process 300 proceeds, any number of additional instances of virtual machines may be launched and/or placed in block 304 based on the same operation profile, either as originally existed, or as modified during process execution previously launched for 300 instances of virtual machines. In this way, process 300 can be performed on any number of concurrent instances, which generally corresponds to the number of virtual machine instances associated with the operating profile (or, in a hierarchy of profiles, a profile from a higher level in the hierarchy) that may be running at any given time.
[0038] At block 306, the resources used by the virtual machine instance can be monitored, and resource utilization measurements and other operational metrics can be obtained. At block 308, operational metrics can be recorded. Monitoring may be performed by the management component 102, or by some other component, such as a workload analysis component 421 of the host computing device 104 on which the virtual machine instance is running. Operational metrics may be stored in the operational metrics data store 208. In embodiments using a workload analysis component 421, the workload analysis component 421 may store operational metrics temporarily or in the long term. The workload analysis component may transmit data regarding operational metrics to the management component 102 for storage in real time, substantially at regular intervals, at virtual machine termination, at some other time, or not at all.
[0039] FIG. 4 illustrates the measurement of usage of various media, from multiple virtual machine instances by a host computing device 104. As illustrated in FIG. 4, a host device 104 may provide computing resources, such as memory 402, a CPU 404, and network bandwidth 406. In some embodiments, additional or less computing resources may be provided for virtual machine instances. For example, a virtual machine instance may not be allowed to communicate with other devices, and therefore the 406 network interface utilization need not be measured. In another example, a host computing device 104 can supply and control disk space usage, hard disk operations, electrical power, and so on.
[0040] In some embodiments, a provider of computing resources, such as an operator of a network computing environment 100, can provide customers with a defined amount of computing resources on which to run a virtual machine instance. For example, a client 122 may reserve for one of its virtual machine instance configurations a predetermined amount of memory, such as random access memory (RAM), a predetermined amount of computing power, such as CPU cores, and a predetermined amount of predetermined amount of network bandwidth, as provided by a network interface. Memory 402 of a host computing device 104 may be segregated into partitions 410, 412, 414 which are reserved for individual virtual machine instances (e.g. partitions 412, 414) or for the operation of the host computing device 104 and other procedures internals (eg partition 410) . The partition reserved for the functioning of the host computing device 104 may include a hypervisor to assist in launching, running and terminating instances of virtual machines, an operating system, drivers and the like. In addition, the host computing device 104 may include a workload analysis component 421 that monitors resource utilization and optionally communicates with the management component 102. The workload analysis component 421 may also reside in memory space 410, and may be integrated into hypervisor 420, or may be a standalone component, which shares memory space 410. In some embodiments, load analysis component 421 may reside in memory space 412, 414 reserved for customers instances of virtual machines. In such cases, the workload analysis component 421 can be integrated into the virtual machine instance configurations or included in the virtual machine instance upon instantiation. In other embodiments, the workload analysis component 421 may reside in a separate reserved memory space for, or may be implemented as a component of, said independent hardware device, which does not share memory 402 of the computing device. host 104.
[0041] In many cases, a virtual machine instance may not use the entire partition of a resource that is reserved for it. For example, VM1 422, illustrated in FIG. 4, may be a virtual machine instance of a client 122, and may be sent to memory space 412, the entirety of which is reserved for use by VM1 422. In operation, VM1 422 may not utilize all of memory space 412 , and in some cases may use a small fraction of the reserved memory space 412. Sometimes, however, the memory space usage 412 may change, and VM1 422 may utilize substantially all of the memory space 412. The analysis component workload 421 can monitor these changes and log measurements and other data such as the time of day, the specific virtual machine instance configuration, or what other virtual machine instances, if any, were running on the device. host computing 104. The workload analysis component 421 may transmit the data to the management component 102 or to a data store. In some embodiments, the workload analysis component 421 may temporarily store the data and then transfer it to the management component 102, such as on a schedule, or in response to a triggering event, such as VM1 termination 422. Similar to measuring and logging data about memory utilization 402, analysis workload component 421 or some other component may monitor utilization of CPU 404, network interface 406, or any other computing resource used by VM1 422.
[0042] Data can be obtained and recorded with respect to any deviations from expected or preferred operational metrics. For example, resource utilization measurements and other operational metrics can be recorded and compared to the operation profile to determine if there is a variance in an expected or preferred metric. In some cases, operational metrics may be recorded on a customer-by-customer basis. Data pertaining to a variance can be recorded so future placement or migration decisions can be made based on the variance. In addition, data about off-host resources such as latency, link traffic, and the like can be logged. The workload analysis component 421 may record this data, or some component external to the host (eg, the management component 102 or a switch) may observe operational metrics. In some embodiments, resource utilization that does not necessarily reduce resource availability can be determined. For example, if a machine instance or virtual software application running on it performs certain cryptographic operations or is observed calling certain cryptographic functions or instructions, that data may be logged. The placement module 204 or migration 206 can consider this data when launching or migrating a virtual machine instance. A host computing device may be selected that provides more efficient or more powerful cryptographic instructions, such as supporting Intel® Advanced Encryption Standard (AES) New Instructions (AES-NI) or similar device.
[0043] In block 310, the profiling module 202 or some other module of the management component 102 can modify an operation profile associated with the virtual machine instance, or create a new operation profile. As described above, health profiles may include information about typical or expected usage of resources, variations in expected or desired operational metrics, and the like. For example, the operation profile might consist of average measurements for each of a number of different instances of a single virtual machine instance configuration. Each feature can be associated with multiple measurements that correspond to operation based on a particular customer, time of day, day of year, or other environmental factors.
[0044] In some embodiments, each of the features in the operation profile may be associated with a score or any other indication of usage rather than a statistical assessment. For example, each resource can be assigned a score of 1-10, where higher numbers are associated with heavier and/or more frequent users of a resource. In some embodiments, the operation profiles can still be generalized. A predefined set of generalized operation profiles can cover measurement ranges or scores for each feature. For example, the configuration of the virtual machine instance from which VM1 422 was instantiated can be assigned a generalized operation profile if, during night time, VM1 422 uses more than 25% of its 412 memory space, but uses almost 100% of your CPU availability. Generalized health profiles can include various measurement ranges for each feature, depending on the time of day or other factors. Going back to the previous example, the example virtual machine configuration from which VM1 422 is instantiated can instead be assigned a different predefined operation profile if the virtual machine instances typically utilize resources in the manner described above during night hours, but during the day it uses 50% of its 412 memory segment and CPU availability. Various generalized operation profiles can be associated with certain virtual machine instance configurations based on usage by particular customers. For example, each client using the virtual machine instance configuration can be associated with a different health profile.
[0045] In some embodiments, each client 122 may be associated with a generalized operation profile even though it has a number of different virtual machine instance configurations, and although each virtual machine configuration example may utilize resources differently . A client 122 may have a virtual machine instance configuration, such as from which a VM1 422 in FIG. 4 is instantiated, which can be independently profiled as a light CPU application, while another virtual machine instance configuration, such as from which VM2 424 is instantiated, can be independently profiled as a CPU heavy application . Client 122 can be profiled as a moderate CPU user, because its average CPU utilization is moderate. Optionally, client 122 can be profiled as a heavy CPU user since it has at least one virtual machine instance configuration which is a heavy CPU application. In other embodiments, clients can have multiple operation profiles associated with each virtual machine image configuration. Different clients or users of substantially the same virtual machine image, such as VM1 422, may utilize different amounts of resources, even though the virtual machine image is a common configuration. A given customer starting from a particular VM may be more likely to use that VM in the same way as previously registered, and consume approximately the same resources.
[0046] Operation profiles for each virtual machine configuration example may be stored in data store 210. Actual measurement profiles for each profile may be stored in the operation profile, or an ID or other indication of which category or generalized operation profile of the virtual machine instance configuration is associated with can be stored. In embodiments that determine and use client profiles instead of or in addition to virtual machine profiles, client profile data may be stored in the same data store 210 or in a different data file.
[0047] In block 312, related or generalized operation profiles can be created or modified. For example, top-level profiles can be created or modified if hierarchical profiles are used. Historical operational metrics can be accessed from the operational metrics data store 208 for each virtual machine instance configuration associated with the higher-level operation profile, in some cases regardless of which lower-level profiles the virtual machine instance configurations have. virtual machine are associated. Statistical analyzes can be performed and variances of operating metrics can be determined as described above. Advantageously, the modified or generalized top-level operation profile can be accessed and used by the positioning module 204 or migration module 206 when instantiating or migrating virtual machine instances that are different from the virtual machine instance associated with the current execution of the process. 300. Thus, the operational metrics logged associated with a virtual machine instance can be used to fine-tune the placement and execution of other virtual machine instances, even those that are not instantiated from the same virtual machine instance configuration.
[0048] Turning now to FIG. 5, an illustrative process 500 for determining the position of virtual machine instances based on operating profiles will be described. Process 500 may be executed by a management component 102. Management component 102 may receive a request from a client 122 or otherwise be notified to launch an instance of a virtual machine from a machine instance configuration. specific virtual or image. Management component 102 can identify host computing devices 104a - 104n that are capable of hosting the virtual machine instance and determine the current status of host computing devices 104a - 104n with respect to available computing resources. Advantageously, the management component 102 can also obtain an operation profile for the configuration of the virtual machine instance to be instantiated, and determine which of the available host computing devices 104a - 104n can most efficiently host the virtual machine from the point of view of available resources. A host computing device 104 may be selected that is already running the virtual machines and that has already committed most or all of its resources to host virtual machines already running. Based on operating profiles of the currently running virtual machine instances and the virtual machine instance to be launched, the management component 102 may start the virtual machine instance on the host computing device 104 if the management component 102 determines that the host computing device 104 can provide the computing resources that the virtual machine instances are likely to consume. In some cases, this may include over-subscription resources (for example, allocating the same resources to multiple virtual machine instances). In addition, the management component 102 can monitor the execution of the virtual machine instances on the host computing device 104, and transfer execution of one or more virtual machine instances to another host computing device 104 if there are not enough computing resources. to satisfy each instance of the virtual machine.
[0049] Process 500 starts at block 502. Process 500 may be started automatically, such as in response to receiving a request to start a virtual machine instance. For example, process 500 may be performed on a set of executable program instructions and stored on a computer-readable, non-transient media drive of the computing system with which the management component 102 is associated. When process 500 is started, executable program instructions can be loaded into memory, such as RAM, and executed by one or more processors in the computing system. In some embodiments, the computing system may include multiple computing devices, such as servers, and the process 500 may be run by multiple servers, either in series or in parallel.
[0050] In block 504, the management component 102 may receive a request or some other notification to initialize a virtual machine instance. The notification may be received from a client 122, a host computing device 104, or some other component or entity. In some embodiments, a virtual machine instance may request to launch another virtual machine instance, another instance of the same virtual machine instance configuration or image, and so on.
[0051] In block 506, the positioning module VM 204 or some other module of the management component 102 can obtain an operation profile for the virtual machine instance to be launched. The operating profile may be loaded from the profile data store 210 or obtained from some other source. The VM positioning module 204 can inspect the operation profile to determine which resources the virtual machine instance is likely to use and in what quantity. As described above, the operating profile of the example virtual machine configuration may differ depending on environmental factors such as the time of day. In such cases, the positioning module VM 204 of the management component 102 can consider such environmental factors when inspecting the operation profile.
[0052] In block 508, VM positioning module 204 or some other management component module 102 can select a host computing device 104 on which to launch the virtual machine instance based on available resources and operation profile. For example, a network computing environment 100 may include a number of host computing devices 104a - 104n. Host computing devices 104a - 104n need not be identical; some may have more or less RAM than others, more or less powerful processors or a different number of processors, etc. The VM positioning module 204 may select a host computing device 104 on which to launch the virtual machine instance based on expected resource utilization as identified by the operating profile and the resources that each computing device makes available.
[0053] In some embodiments, a host computing device 104 may be configured to receive a specified number of instances of a specific virtual machine or class of virtual machines. As shown in FIG. 4, the host computing device 104 may have an amount of memory 402 such that it can reserve a predetermined memory space 410 for the hypervisor 420, and two additional memory spaces 412, 414 of a predetermined size for virtual machines. Two instances of virtual machines 422, 424 may be launched on the host computing device 104, with each instance of the virtual machine 422, 424 allocating a separate memory space 412, 414. A client 122 may reserve a certain amount of a resource to be available for your 422, 424 virtual machine instances, such as by selecting a particular class of virtual machine (eg small, medium, or large, as described above) to configure. Memory spaces 412, 414 may correspond to the maximum allowed amount of resources available to virtual machine instances 422, 424, as reserved by customer 122. However, in practice, virtual machine instances 422, 424 will not be able to use the total amount of a computing resource that is reserved for them. For example, as seen in FIG. 4, virtual machine instances 422, 424 are using only a fraction of the memory spaces 412, 414 that are reserved for them. It may be advantageous to utilize said excess memory space and other excess computing resources so as to reduce the number of host computing devices 104a - 104n needed to serve all currently running virtual machines cases or to more efficiently utilize the resources of those host computing devices 104a - 104n, which are operating.
[0054] FIG. 6 illustrates a host computing device 104 with over-subscription computing capabilities. A third virtual machine instance 426 has been launched on host computing device 104, even though host computing device 104 contains only two memory spaces 412, 414 available for virtual machine instances. Based on the operation profile associated with each of the virtual machine instances 422, 424, 426, the positioning module VM 204 can determine that VM2 422 uses only a fraction of its available memory space 414, and VM3 426 also uses only a fraction of its available memory space when it is launched. Therefore, the positioning module VM 204 can launch VM3 426 on the same computing device as VM2 424 and assign them the same memory space 414.
[0055] As can be seen in FIG. 6, VM1 422 uses substantially all of its memory space 412, and therefore, the VM placement module 204 cannot assign another virtual machine instance to the same memory space 412, due to the operation profile of VM1 422. However, VM1 422 uses only a small amount of CPU capacity 442, and therefore a host compute device 104 on which VM1 422 is running may be a candidate for over-subscriptions if the operating profiles of the virtual machine instances are complementary . In the example illustrated in FIG. 6, VM2 424 uses a large amount of CPU capacity 444. However, if the operation profile of VM3 426 indicates that it is a light user of CPU capacity, then the three virtual machine instances VM1 422, VM2 424 , and VM3 426 may be candidates for oversubscription, due to the operations of complementary profiles, rather than overriding the virtual machine instance configurations from which they are instantiated. Additional resources may be taken into account with an over-subscription determination to ensure that each virtual machine instance running on a host computing device 104 has readily available to it the amount of each of the computing resources that it typically requires. For example, network bandwidth utilization 406, as illustrated in FIG. 6 also supports the determination of over subscriptions in the example described above, because although the operation profile for VM3 426 might indicate that it is a heavy network bandwidth application, VM1 422 and VM2 424 use only a small amount of network bandwidth.
[0056] At block 510, the VM positioning module 204 or some other component management module 102 can position the virtual machine instance on the host computing device 104 which is identified at block 508. As described above, the machine instance virtual machine may be placed on a host computing device 104 with other instances of virtual machines that have reserved amounts of computing resources totaling or exceeding the amount provided by the host computing device 104. In some cases, oversubscriptions can be substantial.
[0057] FIG. 7 illustrates a substantially oversubscribed host computing device 104. As described above, clients 122 can reserve a certain amount of computing resources for use by instances of the client's virtual machines. However, in some cases, a customer 122 may have substantially overestimated the amount of compute resources their virtual machine instances can actually use. In extreme cases, the client 122 may reserve a large amount of compute resources, launch virtual machine instances associated with those resources, and then let the virtual machine instances sit idle or not substantially underutilize the reserved resources. Over time, operation profiles can be developed for the virtual machine instances or the 122 client, which reflects substantial underutilization of reserved resources. The management component 102 may then launch a large number of said low-utilization virtual machine instances on a single host computing device 104. Host computing device 104 of FIG. 7 includes seven different virtual machine instances 422, 424, 426, 722, 724, 726, 728 sharing computing resources that can typically be reserved for only two virtual machine instances, as described above with respect to FIGS. 4 and 6. However, there is still excess capacity for each of the three types of compute resources 402, 404, 406. In some cases, hundreds or more virtual machine instances can be placed on host compute device 104, such as when the host computing device 104 has a large amount of available computing resources and the virtual machine instances are substantially idle.
[0058] In block 512, the resource utilization of each virtual machine instance can be monitored. Over the lifetime of specific virtual machine instances, the workload analysis component 421 can monitor operationally and notify the management component 102 if one of the virtual machine instances starts using resources at a level that is not may be repaired by an oversubscribed host computing device 104, or if resource utilization or an operational metric otherwise differs from an expected or desired amount. In some embodiments, the management component 102 may perform the control.
[0059] In block 514, the management component 102 can determine if resource utilization or an operational metric differs from an expected or desired amount. For example, the management component can determine if a change in resource usage exceeds a threshold or otherwise degrades undesirable performance. A virtual machine instance that starts using more than one compute resource than expected, based on its operating profile and the placement determined by the management component 102, can be transferred to a host compute device 104 that is over to a lesser extent, or to a host computing device 104 that is not over-subscribed at all. In such cases, the execution of process 500 may return to block 508, where the VM migration module 206 or some other management component 102 determines which computing device to transfer the virtual machine 842 to.
[0060] FIG. 8 illustrates a host computing device 104a that has oversubscribed CPU capacity 404a. A VM4 842 virtual machine instance may start to consume a large amount of available CPU 404a capacity, in contradiction to its operating profile. However, the client 122 associated with the VM4 842 virtual machine instance may have reserved a large amount of CPU capacity for the configuration of the virtual machine instance from which VM4 842 is instantiated, and therefore it may be desirable to provide the VM4 virtual machine instance 842 with more CPU capacity than an oversubscription of the host compute device 104a can provide. As shown in FIG. 8, host computing device 104b may be a candidate for such a handover. The virtual machine instance VM8 844 is currently consuming only a small fraction of the CPU capacity 404b available on the host computing device 104b, and the management component 102 may determine that the operating profile associated with the VM8 844 indicates that it is not likely that consume more. The VM migration module 206 may initiate the transfer of VM4 842 from the host computing device 104a to the host computing device 104b.
[0061] The transfer of a virtual machine instance may include first launching an instance of the same virtual machine instance configuration or image on the target host compute device 104b while the virtual machine instance on the source host compute device 104a continues to run . The running state of the virtual machine instance on the source compute host device 104b, including data in memory space or hard disk associated with the virtual machine instance, network connections established by the virtual machine instance, and so on, can , then be duplicated on the target host computing device 104b. The virtual machine instance on the source host computing device 104a can be terminated, and the virtual machine instance on the target computing device 104b can continue execution from that point.
[0062] In some embodiments, the initial placement or transfer of a software workload (e.g., an application or a storage node) may be associated with using a virtual machine instance, or interacting with the load of software workload, although the software workload may not necessarily be a virtual machine instance by itself. For example, a software workload might consist of a storage node implemented as a data storage agent according to the expectations of virtual machine instances that may be using the data. In such cases, the initial placement or transfer of the workload (in this case, the storage node) may be based on placing it next to or otherwise making it more accessible by the virtual machine instance or instances that will use it. it.
[0063] Several embodiments of the present description can be described taking into account the following points:1. A system for profiling computing resource usage, the system comprising: one or more processors; a computer readable memory; and a management module, which includes executable instructions stored in computer-readable memory, the management module, when executed by one or more processors, configured to: receive a request to initialize a new instance of a machine instance configuration virtual, the virtual machine instance configuration associated with the expected amount of resource usage of a first compute resource, wherein the expected amount of usage is based, at least in part, on a plurality of previous measurements associated with the use, by instances of one or more than one similar virtual machine instance configurations, of the first compute resource; and in response to the request; identifying a computing device from a plurality of computing devices based at least on whether an available amount of the first computing resource in the computing device is greater than the expected value; and causes, at least in part, the new instance to be initialized on the compute device.2. The system of clause 1, wherein the first computing resource usage comprises central processing unit (CPU) usage, memory usage, network usage, hard disk usage or electrical power usage.3. The system of clause 1, wherein the management module, when executed, is further configured to: obtain the plurality of previous measurements in relation to the use of the first computing resource; and determining an operating profile for the configuration of the virtual machine instance based, at least in part, on the plurality of above measurements, wherein the operating profile comprises the expected amount of resource utilization.4. The system of clause 3, wherein the operating profile further comprises a desired operating characteristic of the computing device.5. The system of clause 4, wherein the desired operating characteristic refers to memory capacity, central processing unit (CPU) capacity, bandwidth, network latency, position within a network topology, instruction set, or variance of a performance metric.6. The system of clause 4, wherein identifying the computing device comprises determining that a characteristic associated with the computing device corresponds to the desired characteristic.7. A system for profiling the use of computing resources, the system comprises: one or more processors; a computer-readable memory that includes executable instructions that, when executed by one or more processors, configure the system to: determine an operational constraint for a instance of a virtual machine based in part on operational metrics determined from running at least one instance of a similar virtual machine; receiving a request to create an instance of the virtual machine; and in response to the request: identify a host computing device, from a plurality of host computing devices, associated with one or more operational characteristics related to the operation of virtual machine instances based, in part, on whether one or more characteristics satisfy the restriction of operation; and cause, at least in part, a new instance of the virtual machine to be instantiated on the host computing device.8. The clause 7 system, where at least one of the operational metrics refers to central processing unit (CPU), memory usage, network usage, hard disk usage, or electricity usage.9. The system of clause 7, wherein at least one of the one or more characteristics comprises memory capacity, central processing unit (CPU) capacity, bandwidth, network latency, the position within a network topology, the set of instructions, or variance of a performance metric.10. The system of clause 7, where the operating constraint refers to an expected amount of utilization of a computing resource provided by the host computing device.11. The system of clause 10, wherein the expected amount of usage is further based, at least in part, on data received from a client associated with the virtual machine.12. The system of clause 7, wherein the module, when executed, is further configured to: receive an additional operational metric about the operation of the new instance on the host computing device, the additional operational metric related to one or more operation characteristics; and in response to the determination, based on additional operational metrics, that one or more operation characteristics no longer satisfy the operational constraint, transfer the new instance to a second computing device associated with one or more additional operation characteristics that satisfy the constraint operational.13. A computer-implemented method for profiling the use of computing resources, the computer-implemented method comprising: receiving, by a data center management component comprising one or more computing devices, a request to initiate a workload the software associated with an operating profile, wherein the operating profile is based, at least in part, on a plurality of historical operating metrics associated with the software workload; and in response to the request: identifying a computing device from a plurality of computing devices based at least in part on the operating profile and one or more operating characteristics associated with the computing device; ecause the software workload to be initialized on the computing device.14. The computer-implemented method of clause 13, wherein the software workload comprises a virtual machine instance, an operating system, a storage area network (SAN) node, or an application.15. The computer-implemented method of clause 13, wherein at least one of the plurality of historical operational metrics relates to central processing unit (CPU), memory usage, network usage, hard disk usage, or use of power.16. The computer-implemented method of clause 13, wherein at least one of the one or more operating characteristics comprises memory capacity, central processing unit (CPU) capacity, bandwidth, network latency, position within a network topology, instruction set, or variance of a performance metric.17. The computer-implemented method of clause 13, wherein the operation profile comprises a first expected amount of resource usage associated with a first computing resource, wherein the first amount of expected resource usage is based at least in part , on a plurality of historical operational metrics about first resource utilization, and where a characteristic of one or more characteristics comprises availability of the first compute resource.18. The computer-implemented method of clause 17, wherein each of the plurality of historical operating metrics in relation to first resource usage is associated with a time that a usage measurement was recorded, and wherein the operating profile is further based on , at least in part at the time each of the plurality of historical operational metrics was recorded. 19. The computer-implemented method of clause 13, further comprising obtaining at least a portion of the multiplicity of historical operational metrics from an operation analysis component associated with the software workload or an computing the plurality of computing devices running the software workload.20. The computer-implemented method of clause 13, further comprising determining the operation profile based, at least in part, on the plurality of historical operational metrics.21. The computer-implemented method of clause 13, further comprising determining the operation profile based, at least in part, on a service level according to a customer associated with the software workload.22. The computer-implemented method of clause 13, wherein the operating profile comprises a desired operating characteristic of the computing device.23. The computer-implemented method of clause 22, wherein the computing device identification is further based, at least in part, on determining that an operational characteristic of one or more operating characteristics associated with the computing device corresponds to the characteristic of desired operation.24. The computer-implemented method of clause 22, further comprising: receiving a substantially current operating metric of operation of the software workload on the computing device, the substantially current operating metric relating to the characteristics of one or more operations; and in response to the determination, based on the substantially current operating metric, that none of the one or more operating characteristics associated with the computing device match the desired operating characteristic, shifting the software workload to the second computing device associated with an operating characteristic corresponding to the desired operating characteristic.25. The computer-implemented method of clause 13, wherein the operation profile comprises a first predefined operation profile of a plurality of predefined operation profiles.26. The computer-implemented method of clause 25, wherein the predefined operation profiles are associated with the levels of an operation hierarchy, and wherein the first predefined operation profile is associated with the highest level, relative to the workload of software, of the operational hierarchy.27. The computer-implemented method of clause 13, wherein the operation profile comprises a customer-specific operation profile, and wherein the plurality of historical operational metrics are associated with the initiation or use of the software workload by the customer. 28. The computer-implemented method of clause 13, wherein the trading profile comprises a median, standard deviation, or histogram of usage of a metric in historical trading.29. The computer-implemented method of clause 13, wherein the operating profile is based, at least in part, on historical operating metrics for a given period of time.30. A shared computing resource management system, the system comprises: one or more processors; is a computer-readable memory that stores executable instructions that, when executed by one or more processors, to configure the system: receive a request to initialize a first instance of a first virtual machine, the first virtual machine associated with using an amount of a first compute resource, where the first expected usage amount is based, at least in part, on operational metrics determined from previously running at least one instance of a similar virtual machine; selects a compute device of a plurality of computing devices configured to provide the first computing resource, wherein a second instance of a second virtual machine is running on the computing device, wherein a predetermined amount of the first computing resource is reserved for use by the second instance, and where the computing device is selected based at least in part, the predetermined amount being greater than the sum of the first expected usage amount and a second expected usage amount associated with the second example of the first computing resource; and causes, at least in part, the first instance to be initialized on the computing device, where the first instance and the second instance share the predetermined amount of the first computing resource.31. The system of clause 30, wherein the first computing resource comprises one of central processing unit (CPU) capacity, memory space, bandwidth, hard disk space, or electrical power.32. The clause 30 system, where the first instance and second instance are associated with different customers.33. The clause 30 system, where executable instructions additionally configure for the system: to cause, at least in part, a third instance of a third virtual machine to be booted on the computing device, where the third instance is associated with a third expected usage amount of the first compute resource, where the predetermined amount is even greater than the sum of the first expected usage amount, the second expected usage amount, and the third expected usage amount, and where the first instance , in the second instance, and the third instance share the predetermined amount of the first compute resource.34. The system of clause 30, wherein the executable instructions further configure for the system to: obtain a first measurement of first compute resource utilization by the first instance and a second calculation of first compute resource utilization by the second instance; and in response to the determination that the first measurement or second measurement exceeds a threshold, transfers the first instance or second instance to a second computing device.35. A computer-implemented method for managing shared computing resources, the computer-implemented method comprising: receiving, through a data center management system comprising one or more computing devices, a request to initialize a first workload of software associated with a first operating constraint, the first operating constraint based at least in part on a first plurality of historical operating metrics relating to the operation of the first software workload on a host computing device; in response to the request, identifying a first host computing device of a plurality of host computing devices based on at least the first operational constraint and one or more operating characteristics associated with the first host computing device, wherein the first host computing device host computing comprises a second software workload associated with a second operating constraint, and wherein identifying comprises determining whether one or more operating characteristics of the first host computing device are capable of satisfying the first operating constraint and the second operating constraint; and cause, at least in part, the first software workload to be placed on the first device 36. The computer-implemented method of clause 35, wherein the first software workload or the second software workload comprises a virtual machine instance, an application instance, or an operating system.37. The computer-implemented method of clause 35, wherein the first software workload comprises a storage node, and wherein identifying further comprises determining whether the placement of the storage node in the first host computing device satisfies an associated operational constraint with a virtual machine that will use the storage node.38. The computer-implemented method of clause 35, wherein at least one of the one or more operating characteristics comprises memory capacity, central processing unit (CPU) capacity, bandwidth, network latency, position within a topology network, the instruction set, the variance of a performance metric, or the electrical power capacity.39. The computer-implemented method of clause 35, wherein the first operational constraint or second operational constraint relates to memory utilization, central processing unit (CPU), bandwidth utilization, network latency, position within a topology network, instruction set availability, variance of a performance metric, or power usage.40. The computer-implemented method of clause 35, wherein the first operation constraint refers to a first expected usage amount of a first computing resource, and the second operation constraint refers to a second expected usage amount of the first resource of computing, and wherein the first computer-executable program and the second computer-executable program are enabled to simultaneously consume the first expected usage amount and the second expected usage amount, respectively, of the first computing resource.41. The computer-implemented method of clause 40, wherein an operating feature of one or more operating features comprises an available amount of the first computing resource, the computer-implemented method, further comprising: preventing, at least in part, the first computer-executable program and the second computer-executable program from the aggregate consume more than the available amount of the first computing resource.42. The computer-implemented method of clause 35, further comprising causing, at least in part, a third computer-executable program to be initialized on the first host computing device, wherein the third computer-executable program is associated with a third operational constraint , and wherein one or more operating characteristics of the first host computing device are capable of satisfying each of the first operating constraint, the second operating constraint, and the third operating constraint.43. The computer-implemented method of clause 35, further comprising: obtaining one or more operational metrics relating to the operation of the first computer-executable program on the first host computing device; and in response to the determination, based, at least in part, on one or more operation metrics, that the first constraint is no longer likely to be satisfied, the transfer of the first computer-executable program or the second computer-executable program to a second host computing device.44. The computer-implemented method of clause 35, further comprising: obtaining one or more operational metrics relating to the operation of the second computer-executable program on the first host computing device; and in response to the determination, based, at least in part, on one or more operation metrics, that the second constraint is no longer likely to be satisfied, the transfer of the first computer-executable program or the second computer-executable program to a second host computing device.45. The computer-implemented method of clause 35, further comprising: obtaining one or more operating metrics with respect to one or more operating characteristics of the first host computing device; and in response to the determination, based, at least in part, on one or more metrics of operation, that the first constraint or second constraint is no longer likely to be satisfied, the transfer of the first computer-executable program or the second executable program on computer to a second host computing device.46. A shared computing resource management system, the system comprises: one or more processors; a computer-readable memory that stores executable instructions that, when executed by one or more processors, to configure the system to: receive a request to initialize a first computer-executable program associated with a first operating constraint, the first operating constraint based at least in part on a first plurality of historical operating metrics relating to the operation of the first computer-executable program on a host computing device; and identifying a first host computing device of a plurality of host computing devices, the first host computing device associated with one or more operating characteristics, wherein the first host computing device comprises a second computer-executable program associated with a second operating constraint, and wherein the first host computing device is identified based, at least in part, on one or more operating characteristics that satisfy both the first operating constraint and the second operating constraint.47. The system of clause 46, wherein the executable instructions further configure the system to cause, at least in part, the first computer executable program to be executed on the first host computing device.48. The system of clause 46, wherein the first computer-executable program or the second computer-executable program comprises an instance of a virtual machine, an instance of an application, or an operating system. 49. The system of clause 46, wherein at least one of the one or more operating characteristics comprises memory capacity, central processing unit (CPU) capacity, bandwidth, network latency, position within a network topology network, instruction set, variance of a performance metric, or electrical power capacity.50. The system of clause 46, where the first operating constraint or second operating constraint refers to memory usage, central processing unit (CPU), bandwidth usage, network latency, position within a network topology network, instruction set availability, variance of a performance metric, or power usage.51. The system of clause 46, wherein the first operating constraint refers to a first expected usage amount of a first computing resource, and the second operating constraint refers to a second expected usage amount of the first computing resource, and wherein the first computer executable program and the second computer executable program are enabled to simultaneously consume the first expected usage amount and the second expected usage amount, respectively, of the first computing resource.52. The system of clause 51, wherein the executable instructions further configure the system to prevent, at least in part, the first computer-executable program and the second computer-executable program from the aggregate consuming more than an available amount of the first computing resource.53. The system of clause 46, wherein the executable instructions further configure for the system: determining whether the one or more operating characteristics of the first host computing device are capable of satisfying each of the first operating constraint, the second operating constraint, and a third operating constraint, the third operating constraint associated with a third computer executable program; and cause, at least in part, the third computer executable program to be launched on the first host computing device.54. The system of clause 46, wherein the executable instructions further configure for the system to: obtain one or more operational metrics related to the operation of the first computer executable program on the first host computing device; and in response to the determination, based, at least in part, on one or more operation metrics, that the first constraint is no longer likely to be satisfied, the transfer of the first computer-executable program or the second computer-executable program to a second host computing device.55. The system of clause 46, wherein the executable instructions further configure for the system to: obtain one or more operational metrics related to the operation of the second computer executable program on the first host computing device; and in response to the determination, based, at least in part, on one or more operation metrics, that the second constraint is no longer likely to be satisfied, the transfer of the first computer-executable program or the second computer-executable program to a second host computing device.56. The system of clause 46, wherein the executable instructions further configure for the system to: obtain one or more operating metrics with respect to one or more operating characteristics of the first host computing device; and in response to the determination, based, at least in part, on one or more operation metrics, that the first constraint or second constraint is no longer likely to be satisfied, the transfer of the first computer executable program or the second executable program per computer to a second host computing device.
[0064] Depending on the modality, certain acts, events, or functions of any of the processes or algorithms described here may be performed in a different sequence, may be added, merged, or left out (for example, not all operations described or events are necessary for the practice of the algorithm). Also, in certain embodiments, operations or events may be performed simultaneously, for example, through multithreaded processing, interrupt processing, or multiple processors or processor cores, or in other parallel architectures, rather than sequentially. .
[0065] The various illustrative logic blocks, modules, routines and algorithm steps described in relation to the modalities disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, and steps have been described above, generally in terms of their functionality. Whether this functionality is implemented as hardware or software depends on its application and design of specific constraints imposed on the overall system. The functionality described can be implemented in a variety of ways for each particular application, but such execution decisions should not be interpreted as departing from the scope of disclosure.
[0066] The steps of a method, process, routine, or algorithm described in relation to the modalities described herein may be incorporated directly into hardware, into a software module executed by a processor, or a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM, EEPROM, registers, hard disk, a removable disk, a CD-ROM, or any other form of computer-readable non-transient storage medium. An exemplary storage medium may be coupled to the processor so that the processor can read information from, and write information to, the storage medium. Alternatively, the storage medium may be an integral part of the processor. The processor and storage media can reside in an ASIC. The ASIC can reside on a user terminal. Alternatively, the processor and storage media may reside as discrete components on a user terminal.
[0067] Conditional language used herein, such as, but not limited to, "may," "could," "may," "may," "for example," and the like, unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain modalities include, while other modalities do not, certain features, elements and/or steps. Thus, such conditional language is not generally intended to suggest that features, elements, and/or steps are in any way necessary for one or more modalities, or that one or more modalities necessarily include logic to decide, with or without input. or induction of the author, if these characteristics, elements and/or steps are introduced or carried out in any particular modality. The terms "comprising", "including", "having", and others, are synonymous and are used, inclusive, in an open way, and do not exclude additional elements, resources, acts, operations and so on. Furthermore, the term "or" is used in its inclusive (rather than its exclusive) sense, so that when used, for example, to link a list of elements, the term "or" means one, some, or all elements in the list.
[0068] Conjunctive language, such as the phrase "at least one of X, Y and Z," unless specifically stated otherwise, is to be understood with the context as used generally to express that an item, duration, etc. ., can be either X, Y or Z, or a combination thereof. Thus, such conjunctive language is not generally intended to suggest that certain modalities require at least one of X, at least one of Y, and at least one of Z's each being present.
[0069] While the above detailed description has shown, described and pointed out innovative features as applied to various modalities, it can be understood that various omissions, substitutions and changes in the form and details of the devices or algorithms illustrated can be made without departing from the spirit of the disclosure. As may be recognized, certain embodiments of the inventions described herein may be incorporated in a manner that does not provide all of the features and benefits set forth herein, as some features may be used separately or practiced from others. The scope of certain inventions described herein is indicated by the appended claims and not by the foregoing description. All changes that come within the meaning and scope of equivalence of the claims must be encompassed by their scope.
权利要求:
Claims (12)
[0001]
1. System for profiling the use of computing resources, the system characterized in that it comprises: one or more processors; a computer-readable memory including executable instructions that, when executed by one or more processors, configure the system to: determine an operation constraint (306) for an instance of a virtual machine based at least in part on operational metrics determined from running at least one instance of a similar virtual machine, where the operation constraint refers to an expected quantity of using a computing resource by the host computing device; receiving a request (504) to instantiate the virtual machine; and in response to the request: identify a host computing device (508), of a plurality of host computing devices, associated with one or more operational characteristics related to the operation of virtual machine instances based, in part, on the fact that a or more operational characteristics satisfy the operation constraint, wherein at least one of the one or more operational characteristics comprises memory capacity, central processing unit (CPU) capacity, bandwidth, network latency, position within a network topology. network, instruction set, or variance of a performance metric; and cause a new instance of the virtual machine to be instantiated on the host computing device (510).
[0002]
2. System according to claim 1, characterized in that at least one of the operation metrics refers to the central processing unit (CPU), memory usage, network usage, hard disk usage or to the use of electrical energy.
[0003]
3. System according to claim 1 or claim 2, characterized in that the expected amount of usage is still based, at least in part, on data received from a client associated with the virtual machine.
[0004]
4. System according to any one of the previous claims 1 to 3, characterized in that the module, when executed, is still configured to: receive an additional operation metric about the operation of the new instance on the host computing device, the additional operation metric related to the one or more operation characteristics; and in response to the determination, based on the additional operation metric, that one or more operation characteristics no longer satisfy the operation constraint, transfer the new instance to a second computing device associated with one or more additional operation characteristics that satisfy the operating restriction.
[0005]
5. Computer-implemented method for profiling the use of computing resources, the computer-implemented method characterized in that it comprises: receiving, by a data center management component comprising one or more computing devices, a request for the initiating a software workload associated with an operation profile, wherein the operation profile is determined based, at least in part, on a plurality of historical operational metrics associated with the software workload; and in response to the request: identify a computing device from a plurality of computing devices based at least in part on the operating profile and one or more operating characteristics associated with the computing device, wherein an operating characteristic of the one or more characteristics operational comprises availability of the first compute resource; ecause the software workload to be initialized on the computing device.
[0006]
6. Computer-implemented method according to claim 5, characterized in that the operation profile comprises a first expected amount of resource usage associated with a first computing resource, wherein the first expected amount of resource usage it is based, at least in part, on a plurality of historical operational metrics about first resource utilization.
[0007]
7. Computer-implemented method according to claim 6, characterized in that each of the plurality of historical operational metrics in relation to the use of the first resource is associated with a time when a measurement of use was recorded, and in which the operating profile is further based, at least in part, on the time at which each of the plurality of historical operating metrics was recorded.
[0008]
8. Computer-implemented method according to any one of claims 5-7, characterized in that it further comprises determining the operation profile based, at least in part, on a service level according to a customer associated with the software workload.
[0009]
9. Computer-implemented method, according to claim 8, characterized in that it further comprises: receiving a substantially current operating metric of software workload operation on the computing device, the substantially current operating metric related to the one or more operational characteristics; and in response to the determination, based on substantially current operation metrics, that none of the one or more operational characteristics associated with the computing device correspond to the desired operational characteristic, transfer the software workload to the second computing device associated with a characteristic corresponding to the desired operating characteristic.
[0010]
10. Computer-implemented method according to any one of claims 5 to 9, characterized in that the operation profile comprises a first predefined operation profile of a plurality of predefined operation profiles.
[0011]
11. Computer-implemented method according to claim 10, characterized in that the predefined operation profiles are associated with levels in an operation hierarchy, and in which the first predefined operation profile is associated with the highest level, in relation to the software workload, of the operation hierarchy.
[0012]
12. Computer-implemented method according to any one of claims 5 to 11, characterized in that the operation profile comprises a customer-specific operation profile, and in which the plurality of historical operational metrics are associated with startup or the use of the software workload by the customer.
类似技术:
公开号 | 公开日 | 专利标题
BR112015005588B1|2022-01-18|SYSTEM AND METHOD IMPLEMENTED BY COMPUTER FOR PROFILING THE USE OF COMPUTER RESOURCES.
US10542079B2|2020-01-21|Automated profiling of resource usage
US9135048B2|2015-09-15|Automated profiling of resource usage
TWI591542B|2017-07-11|Cloud compute node,method and system,and computer readable medium
Dai et al.2015|Energy-efficient virtual machines scheduling in multi-tenant data centers
Al-Ayyoub et al.2015|Multi-agent based dynamic resource provisioning and monitoring for cloud computing systems infrastructure
US10623481B2|2020-04-14|Balancing resources in distributed computing environments
Vakilinia et al.2015|Modeling of the resource allocation in cloud computing centers
US10353730B2|2019-07-16|Running a virtual machine on a destination host node in a computer cluster
Inomata et al.2011|Proposal and evaluation of a dynamic resource allocation method based on the load of VMs on IaaS
Dargie2014|Estimation of the cost of VM migration
Sotiriadis et al.2013|The inter-cloud meta-scheduling | framework
Sabbir Hasan et al.2013|Heuristic based energy-aware resource allocation by dynamic consolidation of virtual machines in cloud data center
Bermejo et al.2019|Virtualization and consolidation: a systematic review of the past 10 years of research on energy and performance
Sheikhalishahi et al.2015|Autonomic resource contention‐aware scheduling
Fuerst et al.2017|Kraken: Online and elastic resource reservations for cloud datacenters
Shen et al.2018|Resource demand misalignment: An important factor to consider for reducing resource over-provisioning in cloud datacenters
Jain et al.2013|A threshold band based model for automatic load balancing in cloud environment
Wang et al.2016|Comparison and improvement of Hadoop MapReduce performance prediction models in the private cloud
Xu et al.2010|Virtual machine migration strategy in federated cloud
Vakilinia2015|Performance modeling and optimization of resource allocation in cloud computing systems
US20210124605A1|2021-04-29|Method and apparatus for workload volatility management in cloud computing
Datt et al.2015|Monitoring list for compute infrastructure in Eucalyptus cloud
Mbogholi et al.2018|Addressing Node Failures Using Node Management & Cluster Management Techniques in Cloud Computing
Zhang2016|CoolCloud: Improving energy efficiency in virtualized data centers
同族专利:
公开号 | 公开日
CN104854563B|2018-09-18|
JP6049887B2|2016-12-21|
CA2884796C|2018-12-11|
BR112015005588A2|2017-10-10|
EP2898410A1|2015-07-29|
AU2013318249A1|2015-04-02|
SG11201501987UA|2015-04-29|
AU2013318249B2|2016-04-21|
WO2014047073A1|2014-03-27|
SG10201705920SA|2017-08-30|
IN2015DN02823A|2015-09-11|
CA2884796A1|2014-03-27|
CN104854563A|2015-08-19|
JP2015532992A|2015-11-16|
RU2015114568A|2016-11-10|
RU2605473C2|2016-12-20|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

US20070271560A1|2006-05-18|2007-11-22|Microsoft Corporation|Deploying virtual machine to host based on workload characterizations|
JP5110315B2|2006-05-24|2012-12-26|日本電気株式会社|Virtual machine management apparatus, virtual machine management method and program|
US8099487B1|2006-07-06|2012-01-17|Netapp, Inc.|Systems and methods for determining placement of virtual machines|
US20090265707A1|2008-04-21|2009-10-22|Microsoft Corporation|Optimizing application performance on virtual machines automatically with end-user preferences|
US8365183B2|2008-09-02|2013-01-29|Ca, Inc.|System and method for dynamic resource provisioning for job placement|
US8131519B2|2008-09-30|2012-03-06|Hewlett-Packard Development Company, L.P.|Accuracy in a prediction of resource usage of an application in a virtual environment|
JP2010224756A|2009-03-23|2010-10-07|Nec Corp|Virtual machine relocation system, method, program and virtual machine management device|
US8464267B2|2009-04-10|2013-06-11|Microsoft Corporation|Virtual machine packing method using scarcity|
US8261266B2|2009-04-30|2012-09-04|Microsoft Corporation|Deploying a virtual machine having a virtual hardware configuration matching an improved hardware profile with respect to execution of an application|
US9424094B2|2009-06-01|2016-08-23|International Business Machines Corporation|Server consolidation using virtual machine resource tradeoffs|
US8694638B2|2009-06-29|2014-04-08|Red Hat Israel|Selecting a host from a host cluster to run a virtual machine|
JP5490580B2|2010-03-16|2014-05-14|株式会社日立ソリューションズ|Virtual machine control system|
WO2011110026A1|2010-10-29|2011-09-15|华为技术有限公司|Method and apparatus for realizing load balance of resources in data center|US8321568B2|2008-03-31|2012-11-27|Amazon Technologies, Inc.|Content management|
US8601090B1|2008-03-31|2013-12-03|Amazon Technologies, Inc.|Network resource identification|
US7970820B1|2008-03-31|2011-06-28|Amazon Technologies, Inc.|Locality based content distribution|
US7962597B2|2008-03-31|2011-06-14|Amazon Technologies, Inc.|Request routing based on class|
US8606996B2|2008-03-31|2013-12-10|Amazon Technologies, Inc.|Cache optimization|
US8447831B1|2008-03-31|2013-05-21|Amazon Technologies, Inc.|Incentive driven content delivery|
US8028090B2|2008-11-17|2011-09-27|Amazon Technologies, Inc.|Request routing utilizing client location information|
US8122098B1|2008-11-17|2012-02-21|Amazon Technologies, Inc.|Managing content delivery network service providers by a content broker|
US7991910B2|2008-11-17|2011-08-02|Amazon Technologies, Inc.|Updating routing information based on client location|
US8073940B1|2008-11-17|2011-12-06|Amazon Technologies, Inc.|Managing content delivery network service providers|
US8412823B1|2009-03-27|2013-04-02|Amazon Technologies, Inc.|Managing tracking information entries in resource cache components|
US8756341B1|2009-03-27|2014-06-17|Amazon Technologies, Inc.|Request routing utilizing popularity information|
US8688837B1|2009-03-27|2014-04-01|Amazon Technologies, Inc.|Dynamically translating resource identifiers for request routing using popularity information|
US8782236B1|2009-06-16|2014-07-15|Amazon Technologies, Inc.|Managing resources using resource expiration data|
US8397073B1|2009-09-04|2013-03-12|Amazon Technologies, Inc.|Managing secure content in a content delivery network|
US8433771B1|2009-10-02|2013-04-30|Amazon Technologies, Inc.|Distribution network with forward resource propagation|
US9495338B1|2010-01-28|2016-11-15|Amazon Technologies, Inc.|Content distribution network|
US10097398B1|2010-09-28|2018-10-09|Amazon Technologies, Inc.|Point of presence management in request routing|
US10958501B1|2010-09-28|2021-03-23|Amazon Technologies, Inc.|Request routing information based on client IP groupings|
US9407681B1|2010-09-28|2016-08-02|Amazon Technologies, Inc.|Latency measurement in resource requests|
US8468247B1|2010-09-28|2013-06-18|Amazon Technologies, Inc.|Point of presence management in request routing|
US9712484B1|2010-09-28|2017-07-18|Amazon Technologies, Inc.|Managing request routing information utilizing client identifiers|
US8452874B2|2010-11-22|2013-05-28|Amazon Technologies, Inc.|Request routing processing|
US10623408B1|2012-04-02|2020-04-14|Amazon Technologies, Inc.|Context sensitive object management|
US9154551B1|2012-06-11|2015-10-06|Amazon Technologies, Inc.|Processing DNS queries to identify pre-processing information|
US9323577B2|2012-09-20|2016-04-26|Amazon Technologies, Inc.|Automated profiling of resource usage|
US10205698B1|2012-12-19|2019-02-12|Amazon Technologies, Inc.|Source-dependent address resolution|
US9294391B1|2013-06-04|2016-03-22|Amazon Technologies, Inc.|Managing network computing components utilizing request routing|
US9842039B2|2014-03-31|2017-12-12|Microsoft Technology Licensing, Llc|Predictive load scaling for services|
US9722945B2|2014-03-31|2017-08-01|Microsoft Technology Licensing, Llc|Dynamically identifying target capacity when scaling cloud resources|
GB201409056D0|2014-05-21|2014-07-02|Univ Leeds|Datacentre|
US10445134B2|2014-06-03|2019-10-15|Amazon Technologies, Inc.|Identifying candidate workloads for migration|
CN107077385B|2014-09-10|2019-10-25|亚马逊技术公司|For reducing system, method and the storage medium of calculated examples starting time|
US10402746B2|2014-09-10|2019-09-03|Amazon Technologies, Inc.|Computing instance launch time|
US10693946B2|2014-09-16|2020-06-23|Amazon Technologies, Inc.|Instance backed mobile devices|
US9256467B1|2014-11-11|2016-02-09|Amazon Technologies, Inc.|System for managing and scheduling containers|
US10097448B1|2014-12-18|2018-10-09|Amazon Technologies, Inc.|Routing mode and point-of-presence selection service|
US10091096B1|2014-12-18|2018-10-02|Amazon Technologies, Inc.|Routing mode and point-of-presence selection service|
US10033627B1|2014-12-18|2018-07-24|Amazon Technologies, Inc.|Routing mode and point-of-presence selection service|
US9971621B1|2015-02-02|2018-05-15|Amazon Technologies, Inc.|Hotpooling virtual machines|
US10225326B1|2015-03-23|2019-03-05|Amazon Technologies, Inc.|Point of presence based data uploading|
US9916233B1|2015-03-27|2018-03-13|Amazon Technologies, Inc.|Using containers for update deployment|
US9819567B1|2015-03-30|2017-11-14|Amazon Technologies, Inc.|Traffic surge management for points of presence|
US9832141B1|2015-05-13|2017-11-28|Amazon Technologies, Inc.|Routing based request correlation|
US10977128B1|2015-06-16|2021-04-13|Amazon Technologies, Inc.|Adaptive data loss mitigation for redundancy coding systems|
US10298259B1|2015-06-16|2019-05-21|Amazon Technologies, Inc.|Multi-layered data redundancy coding techniques|
US9998150B1|2015-06-16|2018-06-12|Amazon Technologies, Inc.|Layered data redundancy coding techniques for layer-local data recovery|
US10270475B1|2015-06-16|2019-04-23|Amazon Technologies, Inc.|Layered redundancy coding for encoded parity data|
US10270476B1|2015-06-16|2019-04-23|Amazon Technologies, Inc.|Failure mode-sensitive layered redundancy coding techniques|
US11061969B1|2015-06-29|2021-07-13|Amazon Technologies, Inc.|Instance backed mobile devices with multiple instances|
US10609122B1|2015-06-29|2020-03-31|Amazon Technologies, Inc.|Instance backed building or place|
US9998539B1|2015-07-01|2018-06-12|Amazon Technologies, Inc.|Non-parity in grid encoded data storage systems|
US10108819B1|2015-07-01|2018-10-23|Amazon Technologies, Inc.|Cross-datacenter extension of grid encoded data storage systems|
US10162704B1|2015-07-01|2018-12-25|Amazon Technologies, Inc.|Grid encoded data storage systems for efficient data repair|
US10089176B1|2015-07-01|2018-10-02|Amazon Technologies, Inc.|Incremental updates of grid encoded data storage systems|
US10198311B1|2015-07-01|2019-02-05|Amazon Technologies, Inc.|Cross-datacenter validation of grid encoded data storage systems|
US9959167B1|2015-07-01|2018-05-01|Amazon Technologies, Inc.|Rebundling grid encoded data storage systems|
US10394762B1|2015-07-01|2019-08-27|Amazon Technologies, Inc.|Determining data redundancy in grid encoded data storage systems|
US10097566B1|2015-07-31|2018-10-09|Amazon Technologies, Inc.|Identifying targets of network attacks|
US9690622B1|2015-08-24|2017-06-27|Amazon Technologies, Inc.|Stateless instance backed mobile devices|
US10911404B1|2015-08-24|2021-02-02|Amazon Technologies, Inc.|Attribute based authorization|
US9928141B1|2015-09-21|2018-03-27|Amazon Technologies, Inc.|Exploiting variable media size in grid encoded data storage systems|
US9774619B1|2015-09-24|2017-09-26|Amazon Technologies, Inc.|Mitigating network attacks|
US9940474B1|2015-09-29|2018-04-10|Amazon Technologies, Inc.|Techniques and systems for data segregation in data storage systems|
US10270878B1|2015-11-10|2019-04-23|Amazon Technologies, Inc.|Routing for origin-facing points of presence|
US10782990B1|2015-11-24|2020-09-22|Amazon Technologies, Inc.|Container telemetry|
US10394789B1|2015-12-07|2019-08-27|Amazon Technologies, Inc.|Techniques and systems for scalable request handling in data processing systems|
US10257307B1|2015-12-11|2019-04-09|Amazon Technologies, Inc.|Reserved cache space in content delivery networks|
US10049051B1|2015-12-11|2018-08-14|Amazon Technologies, Inc.|Reserved cache space in content delivery networks|
US10642813B1|2015-12-14|2020-05-05|Amazon Technologies, Inc.|Techniques and systems for storage and processing of operational data|
US10248793B1|2015-12-16|2019-04-02|Amazon Technologies, Inc.|Techniques and systems for durable encryption and deletion in data storage systems|
US10180912B1|2015-12-17|2019-01-15|Amazon Technologies, Inc.|Techniques and systems for data segregation in redundancy coded data storage systems|
US10102065B1|2015-12-17|2018-10-16|Amazon Technologies, Inc.|Localized failure mode decorrelation in redundancy encoded data storage systems|
US10324790B1|2015-12-17|2019-06-18|Amazon Technologies, Inc.|Flexible data storage device mapping for data storage systems|
US10127105B1|2015-12-17|2018-11-13|Amazon Technologies, Inc.|Techniques for extending grids in data storage systems|
US10235402B1|2015-12-17|2019-03-19|Amazon Technologies, Inc.|Techniques for combining grid-encoded data storage systems|
US10261782B2|2015-12-18|2019-04-16|Amazon Technologies, Inc.|Software container registry service|
US10348639B2|2015-12-18|2019-07-09|Amazon Technologies, Inc.|Use of virtual endpoints to improve data transmission rates|
US10032032B2|2015-12-18|2018-07-24|Amazon Technologies, Inc.|Software container registry inspection|
US10002247B2|2015-12-18|2018-06-19|Amazon Technologies, Inc.|Software container registry container image deployment|
US10007586B2|2016-01-08|2018-06-26|Microsoft Technology Licensing, Llc|Deferred server recovery in computing systems|
US10592336B1|2016-03-24|2020-03-17|Amazon Technologies, Inc.|Layered indexing for asynchronous retrieval of redundancy coded data|
US10678664B1|2016-03-28|2020-06-09|Amazon Technologies, Inc.|Hybridized storage operation for redundancy coded data storage systems|
US10366062B1|2016-03-28|2019-07-30|Amazon Technologies, Inc.|Cycled clustering for redundancy coded data storage systems|
US10061668B1|2016-03-28|2018-08-28|Amazon Technologies, Inc.|Local storage clustering for redundancy coded data storage system|
US9977697B2|2016-04-15|2018-05-22|Google Llc|Task management system for a modular electronic device|
US9990235B2|2016-04-15|2018-06-05|Google Llc|Determining tasks to be performed by a modular entity|
US10135837B2|2016-05-17|2018-11-20|Amazon Technologies, Inc.|Versatile autoscaling for containers|
US10075551B1|2016-06-06|2018-09-11|Amazon Technologies, Inc.|Request management for hierarchical cache|
US10110694B1|2016-06-29|2018-10-23|Amazon Technologies, Inc.|Adaptive transfer rate for retrieving content from a server|
US9992086B1|2016-08-23|2018-06-05|Amazon Technologies, Inc.|External health checking of virtual private cloud network environments|
US10033691B1|2016-08-24|2018-07-24|Amazon Technologies, Inc.|Adaptive resolution of domain name requests in virtual private cloud network environments|
US11137980B1|2016-09-27|2021-10-05|Amazon Technologies, Inc.|Monotonic time-based data storage|
US11204895B1|2016-09-28|2021-12-21|Amazon Technologies, Inc.|Data payload clustering for data storage systems|
US10657097B1|2016-09-28|2020-05-19|Amazon Technologies, Inc.|Data payload aggregation for data storage systems|
US10437790B1|2016-09-28|2019-10-08|Amazon Technologies, Inc.|Contextual optimization for data storage systems|
US10810157B1|2016-09-28|2020-10-20|Amazon Technologies, Inc.|Command aggregation for data storage operations|
US10496327B1|2016-09-28|2019-12-03|Amazon Technologies, Inc.|Command parallelization for data storage systems|
US10614239B2|2016-09-30|2020-04-07|Amazon Technologies, Inc.|Immutable cryptographically secured ledger-backed databases|
US10469513B2|2016-10-05|2019-11-05|Amazon Technologies, Inc.|Encrypted network addresses|
US10412022B1|2016-10-19|2019-09-10|Amazon Technologies, Inc.|On-premises scaling using a versatile scaling service and an application programming interface management service|
US10296764B1|2016-11-18|2019-05-21|Amazon Technologies, Inc.|Verifiable cryptographically secured ledgers for human resource systems|
US10409642B1|2016-11-22|2019-09-10|Amazon Technologies, Inc.|Customer resource monitoring for versatile scaling service scaling policy recommendations|
US11269888B1|2016-11-28|2022-03-08|Amazon Technologies, Inc.|Archival data storage for structured data|
US10372499B1|2016-12-27|2019-08-06|Amazon Technologies, Inc.|Efficient region selection system for executing request-driven code|
US10831549B1|2016-12-27|2020-11-10|Amazon Technologies, Inc.|Multi-region request-driven code execution system|
US10938884B1|2017-01-30|2021-03-02|Amazon Technologies, Inc.|Origin server cloaking using virtual private cloud network environments|
US10423455B2|2017-02-03|2019-09-24|Microsoft Technology Licensing, Llc|Method for deploying virtual machines in cloud computing systems based on predicted lifetime|
US10942760B2|2017-02-03|2021-03-09|Microsoft Technology Licensing, Llc|Predictive rightsizing for virtual machines in cloud computing systems|
US10296367B2|2017-02-03|2019-05-21|Microsoft Technology Licensing, Llc|Resource management for virtual machines in cloud computing systems|
US10503613B1|2017-04-21|2019-12-10|Amazon Technologies, Inc.|Efficient serving of resources during server unavailability|
US11140455B1|2017-06-09|2021-10-05|Amazon Technologies, Inc.|Video encoder network sandboxing|
US11075987B1|2017-06-12|2021-07-27|Amazon Technologies, Inc.|Load estimating content delivery network|
US10447648B2|2017-06-19|2019-10-15|Amazon Technologies, Inc.|Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP|
WO2019030889A1|2017-08-10|2019-02-14|株式会社日立製作所|Computer implementation control system and method|
JP6681377B2|2017-10-30|2020-04-15|株式会社日立製作所|System and method for optimizing resource allocation|
US10592578B1|2018-03-07|2020-03-17|Amazon Technologies, Inc.|Predictive content push-enabled content delivery network|
US10862852B1|2018-11-16|2020-12-08|Amazon Technologies, Inc.|Resolution of domain name requests in heterogeneous network environments|
US11025747B1|2018-12-12|2021-06-01|Amazon Technologies, Inc.|Content request pattern-based routing system|
US20210109786A1|2019-10-14|2021-04-15|Microsoft Technology Licensing, Llc|Virtual machine operation management in computing devices|
RU2752241C2|2019-12-25|2021-07-23|Общество С Ограниченной Ответственностью «Яндекс»|Method and system for identifying malicious activity of predetermined type in local network|
US11256493B1|2020-11-03|2022-02-22|Bank Of America Corporation|Container image optimizer|
法律状态:
2018-11-21| B06F| Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]|
2020-02-04| B06U| Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]|
2021-11-23| B09A| Decision: intention to grant [chapter 9.1 patent gazette]|
2022-01-18| B16A| Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]|Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 17/09/2013, OBSERVADAS AS CONDICOES LEGAIS. |
优先权:
申请号 | 申请日 | 专利标题
US13/623,845|2012-09-20|
US13/623,847|US9135048B2|2012-09-20|2012-09-20|Automated profiling of resource usage|
US13/623,845|US9323577B2|2012-09-20|2012-09-20|Automated profiling of resource usage|
US13/623,847|2012-09-20|
PCT/US2013/060200|WO2014047073A1|2012-09-20|2013-09-17|Automated profiling of resource usage|
[返回顶部]